AB 测试: AB 测试的效果评估和优化
本文介绍 A/B 测试。
和其他的业务分析方法不同,A/B 测试并不是一个完整的业务数据分析流程,而是穿插在其中的一种分析方法。但是它在数据分析的工作当中实在是太常见了,并且看起来很简单,但其实有一些坑,所以本文会详细介绍 A/B 测试相关的知识。
怎么做 A/B 测试
A/B 测试在目前的互联网行业内已经非常普遍了。基本的做法,是为网页或者 App 的页面制作两个或多个不同的版本,然后在同一时间,让相同属性的用户分别访问两个不同的版本。在这个过程中,收集用户的行为数据和业务数据,最终通过不同版本之间的数据对比,经过统计学的检验,评估出哪一个版本更好。
这里有几个操作的要点。
1. 同一时间
第一个操作要点是不同版本的测试要在同一时间。现在的热点变化非常快,如果你不是同一时间,很难说清楚数据的变化到底是因为市场热点的变化导致的,还是因为测试的版本真的有效。这一点也是互联网公司相对传统公司的优势所在。
传统企业比如线下经销商,做促销活动的时候是没办法区分不同用户的。只要在门店做了宣传,那么所有经过这家店的用户都会看到宣传的内容。如果想要对比两个不同的活动的效果,就只能等这次活动结束之后再开展新的活动。但是营业额不单单是由促销活动带来的,天气情况、学生放假、流行趋势等等都会影响营业额,甚至这次活动也会影响下一次的活动。
所以不同时间总结出来的经验未必准确,所以传统企业的知识积累非常慢,一些有效的运营方式要经过好几年的时间才能总结出来。
2. 同类用户
第二个操作要点是不同版本之间的对比,必须确保用户的属性是相同的。
比如用户属性有新用户和老用户两种,我们在进行两个版本的 A/B 测试的时候,就要确保不同版本之间的用户构成是类似的。如果 A 版本的用户中新用户的占比更高,而新用户的转化率又较低,那么 A 版本的整体转化率就肯定要比 B 版本更低。甚至还会出现以下这种情况:

比如表中的数据,A 版本的整体转化率 18%,B 版本的整体转化率 18.5%。A 版本的整体转化率要比 B 版本低。但是实际上 A 版本的新用户转化率 10%,老用户的转化率 21.4%,单独看这两个转化率都要比 B 版本更高。
如果用户的属性相同的话,就不会出现这样的问题了。
要确保用户属性相同,就要确保分发算法的随机性。比较简单的可以依据 IP 地址、用户 id 等,分成 2 组就按照奇偶数,分成 n 组就除以 n 取模,比如分成 3 组就除以 3,余数 0、1、2分别作一组。比较复杂的方案一般是通过哈希算法进行随机分配,这样的好处是可以做分层正交,多组试验不用相互干扰。
不过这方面知识主要是开发人员需要掌握的,数据分析师了解即可。目前业内比较成熟的 A/B 测试平台,如热云、云眼等都是用这种算法。
3. 统计学检验
第三个操作要点是 A/B 测试最终的结果需要经过统计学的检验,这一点是非常容易被大家忽视的。有些数据看起来差距很明显,但由于样本量较小,或者差距不够明显,还不能认定是有效的。
比如一个转化页,每天有 1 万人的流量。我们选出其中的 10%,也就是 1000 人,作为实验组,投放新版本的页面。剩下的 9000 人作为对照组,继续使用原来的版本的页面。投放后的数据回收结果如下:

对照组投放 9000 人,转化 310 人,转化率 3.44%。
测试组投放 1000 人,转化 43 人,转化率 4.3%
测试组相比对照组转化率提升了 24.84%。
一般人拿到这个数据,就直接下结论了:实验组相比对照组转化率提升 24.84%。但是真的是这样吗?
我们必须通过统计学的方式,计算出显著性水平。一般只有显著性水平大于 0.95,才能认为结论是正确的。你可以理解成,有 95% 以上的把握认为这个结论是成立的。
如果不想学习计算的具体方法,甚至连原理也懒得了解,那么最简单的办法就是搜索“A/B测试结果分析工具”,有很多网站会提供一个计算器,你直接输入访问数、转化数,就会自动计算两个版本的转化率之间的显著性水平。
我们把之前的数字输入到这个计算器当中,会出现这样的结果。

结果显示,我们 89.93% 肯定实验组的改动会带来转化率的提升。这个数据没有到 95%,因此我们不能认为实验组就一定要比对照组更好。
4. 灰度发布
第四个操作要点是 A/B 测试要考虑是否需要灰度发布。灰度发布是指能够平滑过渡的一种发布方式。如果 A/B 测试的时候做灰度发布,可以让一部分用户进入测试的 A 版本,比如 5%。另一部分用户继续使用原来的版本,也就是剩下的 95%。
如果 A 版本确实效果更好,那么逐步扩大范围,从 5% 扩大到 10%,再扩大到 20%、30%、40%,直到把所有用户都迁移到 A 版本。
这样做的好处是如果新版本有重大的问题,小范围的测试不会造成全局的巨大影响。大公司一般所有的业务改动都需要做 A/B 测试,而且一般都会进行灰度发布。因为大公司的业务体量比较大,一个小小的改动也会带来业务量的巨大变化。如果一天有 1 个亿的营业额,一个小改动影响了 1%,那也会影响 100 万的销售额。
不经过测试就直接上线的话影响就太大了,比较好的做法是先给一小部分流量做测试,比如先在全体用户中划出一部分作为测试样本,这样就算新版本效果不好,做测试的一小部分用户营业额下降 1%,对全局来说影响也不大。
5.指标的选择
第五个操作要点是指标的选择。A/B 测试一般比较容易找,结合测试页面的目的就可以,比如落地页上的 A/B 测试一般都以落地页的转化率作为衡量指标,首页的 A/B 测试一般以用户留存率作为衡量指标等,指标的选择可以参考第 3 讲中的 OSM 模型。
这边要提一下的是,A/B 测试不仅要关注当前页面的指标,还要考虑全局,否则会陷入局部更优,而全局变差的情况。比如一个购买转化过程,要经过落地页、支付页、支付成功三个步骤。我们在落地页上进行 A/B 测试,一般参考的是落地页到支付页的转化率,哪个版本的转化率更高,那么就用哪个版本。
但是我们还得参考一下全局的指标。落地页不仅仅要考虑的是更多人跳转支付页,最终的目标应该是为了让更多用户付费成功,所以如果跳转支付页的比例提高了,而整体付费成功的比例下降了,那这个版本依然是一个失败的版本。
所以在 A/B 测试的指标选择上,不能太盯着局部,也要参考整体效果。
A/B 测试的类型
A/B 测试的类型一般有:
-
功能 MVP;
-
路径测试;
-
文案测试;
-
设计测试。
功能 MVP
功能 MVP 就是一个新功能上线前,先通过 MVP(最小可行化产品)的形式进行测试,看看用户是否有这样的需求。
比如某 App 在首页,在顶部增加一个推荐栏。但是不确定用户是否有这样的需求,于是开展了一次 A/B 测试。

图中左边是原始版本,右边是测试版本。测试版本相比原始版头多了一个“顶部推荐栏”。
最终,试验版本的各项指标明显优于原始版本,人均文章的浏览量大幅提升。
路径测试
路径测试就是比较不同的步骤和路径对用户的影响。这里的步骤和路径不仅包括跳转的顺序,也包括单个页面上各模块顺序的调整。
比如某外语培训公司在外部投放的一个落地页上开展了一次 A/B 测试。

图中左边是原始版本,推广页第三屏展示内容为“口译课程介绍”;右边是试验版本,将原本的“口译课程介绍”放到后面,把“各类课程介绍”提前至第三屏,其余页面元素保持不变。
改版后,试验版本的页面转化率效果更好。
文案测试
文案测试是比较不同的文案对用户的使用是否会产生影响。文案测试很多时候测的是用户心理学,改变用户对产品的认知。
比如某 K12 在线教育机构的一次落地页文案试验:
版本一中 Banner 的文案为“一次注册,让孩子一生与众不同”;版本二中的 Banner 文案为“直播+辅导,学习更有效”。其余元素没有任何改动。

这次试验的结果是试验版本(直播+辅导,学习更有效)相比于原始版本(一次注册,让孩子一生与众不同)注册转化率明显提升。
设计测试
设计测试是比较不同的视觉方案对用户的影响。
比如墨迹天气对分享按钮的形状进行了一次测试,一共四组方案。
方案一:原始版本,分享图标样式为两条直线连接的三个空心圆。
方案二:相比原始版本,分享图标为圆形由空心变为实心。
方案三:分享图标为长方形上部空出+向上的箭头。
方案四:分享图标为长方形右上角空出+向右上方的箭头。

最终相比其他版本,方案 3 中分享图标的点击率上涨了近 20%,这对用户量过亿的墨迹天气来说,也算是一个不小的提升;
容易忽视的错误
介绍完 A/B 测试的常见类型,接下来说一些容易被我们忽视的错误。
以上介绍的四种类型的 A/B 测试,其实是有优先级顺序的,优先级从上到下依次递减。这样的顺序是符合产品设计的规律的:
如果一个产品的功能本身不被用户接受,你文案吹得再好,设计得再好看也没用,产品满足需求永远是第一位的。其次是产品功能之间的结构关系,如何跳转,页面顺序等。再之后才是文案和设计。
很多人学了 A/B 测试的方法之后,盲目迷信 A/B 测试,把所有的优化分析工作都交给 A/B 测试来完成。有灵光一闪的想法就用 A/B 测试来试一下,而各个想法之间没有关联,无法串联起一条主线。看到一个案例提到按钮颜色的测试案例,就想着自己也试一下不同的按钮颜色。看到别人页面顺序调整的成功案例,于是自己也调一下页面顺序。至于自己是不是应该做按钮颜色的测试,根本没有思考。
虽然按钮的颜色试验测试之后可能确实会对转化率有一定的帮助,但是这样的 A/B 测试效率一定不是最高的。那些成功案例里其他公司做按钮颜色的测试,可能是这家公司产品功能、页面结构等已经优化得很好了,实在找不到优化点于是开始对设计层面进行测试,并且有可能已经搭建了完善的 A/B 测试体系,每一个实验的成本很低,所以才有精力对这些细节做测试。
你不要只看到他吃第 6 个饼的时候吃饱了,就想着直接去吃第 6 个饼,要知道他前面还吃了其他的 5 个饼。
字节跳动是典型的依靠大量的试验成长起来的公司,就连“今日头条”这个名字也是依靠 A/B 测试决定的。但是我们不能只学其形,不学其神。虽然字节跳动以试验驱动业务,但是以理性著称的字节跳动的 CEO 张一鸣也表示“同理心才是产品的根基,A/B 测试只是工具”。所以千万不要迷信 A/B 测试,它只是工具。
小结
A/B 测试是互联网行业非常常见的一种优化方法,在分析 A/B 测试的结果时,我们必须确保实验是同一时间、同类用户,并经过了统计学检验后才能下结论。如果影响的用户量较大,还需要进行灰度发布,逐步提高测试版本的覆盖人数。
A/B 测试常见的类型有:功能 MVP、路径测试、文案测试、设计测试,这几类测试的优先级是逐步递减的。在实际工作中,不要迷信 A/B 测试,而是要有对产品和业务的理解,以业务理解作为主线,A/B 测试只是工具。